package NM;

import java.util.Scanner;
import java.util.Stack;

//出入栈的次序匹配；
//方法：新建一共栈，将要判断的数组元素进行一一入栈，每将一个元素入栈，进行判断另一组数组第一个元素是否与其相等，如果相等就进行一个判断是否相等，
// 在进行判断期间要保证栈不为空且数组元素不能越界；
//最后返回栈是否为空的判断即可；
public class text3 {
    public static boolean IsPopOrder(int[] pushV,int[] popV){
        Stack<Integer> stack=new Stack<>();
        int j=0;
        for(int i=0;i< pushV.length;i++){
            stack.push(pushV[i]);
            while(!stack.empty()&&j< popV.length&&stack.peek()==popV[j]){
                stack.pop();
                j++;
            }
        }
        return stack.empty();
    }
    public static void main(String[] args){
        int[] pushV={1,2,3,4,5};
        int[] popV={4,5,3,2,1};
        boolean bool=IsPopOrder(pushV,popV);
        System.out.println("判断的两个数组次序是否匹配");
        System.out.println(bool);



    }
}
